Agency task: Agency decisions
Model: Agency decisions by VoC
## Mixed Model Anova Table (Type 3 tests, LRT-method)
##
## Model: stage_1_choice ~ age_z * voc_z * condition_trial + (voc_z * condition_trial ||
## Model: subject_id)
## Data: agency_model_data
## Df full model: 12
## Effect df Chisq p.value
## 1 age_z 1 0.00 .965
## 2 voc_z 1 166.62 *** <.001
## 3 condition_trial 1 0.07 .796
## 4 age_z:voc_z 1 12.28 *** <.001
## 5 age_z:condition_trial 1 0.01 .941
## 6 voc_z:condition_trial 1 51.94 *** <.001
## 7 age_z:voc_z:condition_trial 1 5.26 * .022
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '+' 0.1 ' ' 1
## Generalized linear mixed model fit by maximum likelihood (Laplace
## Approximation) [glmerMod]
## Family: binomial ( logit )
## Formula: stage_1_choice ~ age_z * voc_z * condition_trial + (1 + re1.voc_z +
## re1.condition_trial + re1.voc_z_by_condition_trial || subject_id)
## Data: data
## Control: glmerControl(optimizer = "bobyqa", optCtrl = list(maxfun = 1e+06))
##
## AIC BIC logLik deviance df.resid
## 38797.4 38902.4 -19386.7 38773.4 46747
##
## Scaled residuals:
## Min 1Q Median 3Q Max
## -37.884 -0.383 0.172 0.500 37.176
##
## Random effects:
## Groups Name Variance Std.Dev.
## subject_id (Intercept) 4.51649 2.1252
## subject_id.1 re1.voc_z 0.49714 0.7051
## subject_id.2 re1.condition_trial 0.82459 0.9081
## subject_id.3 re1.voc_z_by_condition_trial 0.04873 0.2207
## Number of obs: 46759, groups: subject_id, 150
##
## Fixed effects:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) 1.262274 0.175189 7.205 5.80e-13 ***
## age_z 0.007817 0.175021 0.045 0.964374
## voc_z 1.094665 0.061063 17.927 < 2e-16 ***
## condition_trial -0.020084 0.076998 -0.261 0.794221
## age_z:voc_z 0.218514 0.061010 3.582 0.000341 ***
## age_z:condition_trial -0.005671 0.076827 -0.074 0.941160
## voc_z:condition_trial 0.200551 0.025090 7.993 1.31e-15 ***
## age_z:voc_z:condition_trial 0.058322 0.025114 2.322 0.020219 *
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Correlation of Fixed Effects:
## (Intr) age_z voc_z cndtn_ ag_z:v_ ag_z:c_ vc_z:_
## age_z -0.001
## voc_z 0.012 0.001
## conditn_trl 0.011 -0.002 0.007
## age_z:voc_z 0.002 0.010 -0.006 0.001
## ag_z:cndtn_ -0.002 0.007 0.001 -0.009 0.004
## vc_z:cndtn_ 0.006 0.001 0.043 0.034 -0.001 0.005
## ag_z:vc_z:_ 0.001 0.003 0.000 0.005 0.036 0.033 0.000
Plot: Sensitivity to the value of choice

Plot: Sensitivity to value of choice with continuous age


Summary stats: Sensitivity to value of control
Agency task: Machine selection
Model: Optimal machine choices across trials by condition and
age
## Mixed Model Anova Table (Type 3 tests, LRT-method)
##
## Model: stage_2_acc ~ age_z * context * condition_trial + (context *
## Model: condition_trial || subject_id)
## Data: machine_model_data
## Df full model: 12
## Effect df Chisq p.value
## 1 age_z 1 15.49 *** <.001
## 2 context 1 29.27 *** <.001
## 3 condition_trial 1 69.50 *** <.001
## 4 age_z:context 1 0.74 .389
## 5 age_z:condition_trial 1 0.70 .404
## 6 context:condition_trial 1 5.47 * .019
## 7 age_z:context:condition_trial 1 1.71 .191
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '+' 0.1 ' ' 1
## Generalized linear mixed model fit by maximum likelihood (Laplace
## Approximation) [glmerMod]
## Family: binomial ( logit )
## Formula: stage_2_acc ~ age_z * context * condition_trial + (1 + re1.context1 +
## re1.condition_trial + re1.context1_by_condition_trial || subject_id)
## Data: data
## Control: glmerControl(optimizer = "bobyqa", optCtrl = list(maxfun = 1e+06))
##
## AIC BIC logLik deviance df.resid
## 15084.2 15179.9 -7530.1 15060.2 21318
##
## Scaled residuals:
## Min 1Q Median 3Q Max
## -10.7613 0.0972 0.2017 0.4001 2.4112
##
## Random effects:
## Groups Name Variance Std.Dev.
## subject_id (Intercept) 1.7634 1.3279
## subject_id.1 re1.context1 0.6000 0.7746
## subject_id.2 re1.condition_trial 0.2931 0.5414
## subject_id.3 re1.context1_by_condition_trial 0.1118 0.3344
## Number of obs: 21330, groups: subject_id, 149
##
## Fixed effects:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) 2.31548 0.11532 20.079 < 2e-16 ***
## age_z 0.45937 0.11421 4.022 5.77e-05 ***
## context1 0.40971 0.07119 5.755 8.65e-09 ***
## condition_trial 0.49629 0.05390 9.208 < 2e-16 ***
## age_z:context1 -0.06268 0.07112 -0.881 0.3782
## age_z:condition_trial 0.04491 0.05342 0.841 0.4006
## context1:condition_trial 0.09387 0.03923 2.393 0.0167 *
## age_z:context1:condition_trial -0.05214 0.03913 -1.333 0.1827
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Correlation of Fixed Effects:
## (Intr) age_z cntxt1 cndtn_ ag_z:1 ag_z:_ cnt1:_
## age_z 0.038
## context1 0.033 0.004
## conditn_trl 0.077 0.011 0.031
## ag_z:cntxt1 0.000 0.023 0.054 -0.003
## ag_z:cndtn_ 0.007 0.061 -0.002 0.071 0.021
## cntxt1:cnd_ 0.028 0.000 0.108 0.077 0.014 0.003
## ag_z:cnt1:_ -0.003 0.017 0.014 0.004 0.106 0.066 0.106
Plot: Proportion optimal machine selections across age groups and
trials

Explicit reward knowledge task
Explicit reward knowledge task: summary stats
Model: Explicit reward knowledge by age and true probabilities
## Mixed Model Anova Table (Type 3 tests, S-method)
##
## Model: error ~ zTrueProb * zAge + (1 | subject_id)
## Data: explicitKnow.filtered
## Effect df F p.value
## 1 zTrueProb 1, 748.00 23.42 *** <.001
## 2 zAge 1, 148.00 7.59 ** .007
## 3 zTrueProb:zAge 1, 748.00 0.52 .473
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '+' 0.1 ' ' 1
## Linear mixed model fit by REML. t-tests use Satterthwaite's method [
## lmerModLmerTest]
## Formula: error ~ zTrueProb * zAge + (1 | subject_id)
## Data: data
##
## REML criterion at convergence: 3093.5
##
## Scaled residuals:
## Min 1Q Median 3Q Max
## -1.5243 -0.7034 -0.1905 0.4417 4.1618
##
## Random effects:
## Groups Name Variance Std.Dev.
## subject_id (Intercept) 0.1159 0.3405
## Residual 1.6947 1.3018
## Number of obs: 900, groups: subject_id, 150
##
## Fixed effects:
## Estimate Std. Error df t value Pr(>|t|)
## (Intercept) 1.58778 0.05154 148.00000 30.810 < 2e-16 ***
## zTrueProb -0.21012 0.04342 747.99999 -4.840 1.58e-06 ***
## zAge -0.14204 0.05156 148.00000 -2.755 0.00661 **
## zTrueProb:zAge -0.03119 0.04344 747.99999 -0.718 0.47293
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Correlation of Fixed Effects:
## (Intr) zTrPrb zAge
## zTrueProb 0.000
## zAge 0.000 0.000
## zTruPrb:zAg 0.000 0.000 0.000
Plot: Explicit reward knowledge

LS0tCnRpdGxlOiAiRTIgVm9DIEFuYWx5c2VzIFBhcnQgMjogUmVncmVzc2lvbiBBbmFseXNlcyIKZGF0ZTogMS84LzI0Cm91dHB1dDoKICAgIGh0bWxfZG9jdW1lbnQ6CiAgICAgICAgZGZfcHJpbnQ6ICdwYWdlZCcKICAgICAgICB0b2M6IHRydWUKICAgICAgICB0b2NfZmxvYXQ6CiAgICAgICAgICAgIGNvbGxhcHNlZDogZmFsc2UKICAgICAgICAgICAgc21vb3RoX3Njcm9sbDogdHJ1ZQogICAgICAgIG51bWJlcl9zZWN0aW9uczogZmFsc2UKICAgICAgICBjb2RlX2Rvd25sb2FkOiB0cnVlCiAgICAgICAgc2VsZl9jb250YWluZWQ6IHRydWUKLS0tCgpgYGB7ciBjaHVuayBzZXR0aW5ncywgaW5jbHVkZSA9IEZBTFNFfQojIHNldCBjaHVuayBzZXR0aW5ncwprbml0cjo6b3B0c19jaHVuayRzZXQoZWNobyA9IEZBTFNFLCAKICAgICAgICAgICAgICAgICAgICAgIGNhY2hlID0gVFJVRSwKICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2UgPSBGQUxTRSwKICAgICAgICAgICAgICAgICAgICAgIHdhcm5pbmcgPSBGQUxTRSkKa25pdHI6Om9wdHNfY2h1bmskc2V0KGRwaT02MDApCmtuaXRyOjpvcHRzX2tuaXQkc2V0KHJvb3QuZGlyID0gcnByb2pyb290OjpmaW5kX3JzdHVkaW9fcm9vdF9maWxlKCkpCmBgYAoKYGBge3IgbG9hZCBsaWJyYXJpZXMsIGluY2x1ZGUgPSBGfQoKI2xvYWQgbGlicmFyaWVzCmxpYnJhcnkodGlkeXZlcnNlKQpsaWJyYXJ5KGdsdWUpCmxpYnJhcnkoYWZleCkKCiNsb2FkIHNjcmlwdHMKc291cmNlKCdhbmFseXNpc19zY3JpcHRzL3ZvY19mdW5jdGlvbnMuUicpCmBgYAoKYGBge3IgaW1wb3J0IGRhdGF9CgojIHJlYWQgaW4gbGVhcm5pbmcgZGF0YQpsZWFybmluZ19kYXRhIDwtIHJlYWRfY3N2KCdkYXRhL3Byb2Nlc3NlZC9sZWFybmluZ19kYXRhLmNzdicpCgojIHJlYWQgaW4gcGFydGljaXBhbnQgYWdlcwpwYXJ0aWNpcGFudF9hZ2VzIDwtIHJlYWRfY3N2KCdkYXRhL3ZvY19zdWJfaW5mby5jc3YnKSAKCiMgam9pbgpsZWFybmluZ19kYXRhIDwtIGlubmVyX2pvaW4obGVhcm5pbmdfZGF0YSwgcGFydGljaXBhbnRfYWdlcywgYnkgPSBjKCdzdWJqZWN0X2lkJykpICU+JQogIG11dGF0ZShhZ2VfZ3JvdXAgPSBjYXNlX3doZW4oYWdlIDwgMTMgfiAnQ2hpbGRyZW4nLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWdlIDwgMTggJiBhZ2UgPiAxMi45OSB+ICdBZG9sZXNjZW50cycsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZ2UgPiAxOCB+ICdBZHVsdHMnKSkKCmxlYXJuaW5nX2RhdGEkYWdlX2dyb3VwIDwtIGZhY3RvcihsZWFybmluZ19kYXRhJGFnZV9ncm91cCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldmVscyA9IGMoIkNoaWxkcmVuIiwgIkFkb2xlc2NlbnRzIiwgIkFkdWx0cyIpKQoKYGBgCgpgYGB7ciBwcm9jZXNzIGxlYXJuaW5nIGRhdGF9CmxlYXJuaW5nX2RhdGEgPC0gbGVhcm5pbmdfZGF0YSAlPiUKICBtdXRhdGUoZXZfY2hvaWNlID0gY2FzZV93aGVuKGNvbnRleHQgPT0gMCB+IDksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0ID09IDEgfiA3LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dCA9PSAyIH4gNSksCiAgICAgICAgIGV2X2NvbXAgPSA1ICsgb2ZmZXIsCiAgICAgICAgIHZvYyA9IGV2X2Nob2ljZSAtIGV2X2NvbXAsCiAgICAgICAgIGJldHRlcl9tYWNoaW5lID0gY2FzZV93aGVuKHJld2FyZF9wcm9iX0wgPiByZXdhcmRfcHJvYl9SIH4gMSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV3YXJkX3Byb2JfTCA8IHJld2FyZF9wcm9iX1IgfiAwLAogICAgICAgICApLAogICAgICAgICBzdGFnZV8yX2FjYyA9IGNhc2Vfd2hlbihzdGFnZV8yX2Nob2ljZSA9PSBiZXR0ZXJfbWFjaGluZSB+IDEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YWdlXzJfY2hvaWNlICE9IGJldHRlcl9tYWNoaW5lIH4gMCkpICU+JQogIGdyb3VwX2J5KHN1YmplY3RfaWQsIGNvbnRleHQpICU+JQogIG11dGF0ZShjb25kaXRpb25fdHJpYWwgPSByYW5rKHRyaWFsKSwKICAgICAgICAgYmxvY2sgPSBmbG9vcigodHJpYWwtMSkvMjEgKyAxKSkKCiMgZXhjbHVkZSBmaXJzdC1zdGFnZSBtaXNzZXMgYW5kIGZpcnN0LXN0YWdlIFJUIDwgMTUwIG1zCmxlYXJuaW5nX2RhdGFfZmlsdGVyZWQgPC0gbGVhcm5pbmdfZGF0YSAlPiUKICBmaWx0ZXIoc3RhZ2VfMV9ydCA+IDE1MCkKCmBgYAoKIyBQYXJ0aWNpcGFudCBpbmZvCmBgYHtyIHN1YmplY3QgaW5mb3JtYXRpb259CnN1Yl9pbmZvIDwtIGxlYXJuaW5nX2RhdGFfZmlsdGVyZWQgJT4lCiAgdW5ncm91cCgpICU+JQogIHNlbGVjdChzdWJqZWN0X2lkLCBhZ2UsIGFnZV9ncm91cCwgZ2VuZGVyKSAlPiUKICB1bmlxdWUoKSAlPiUKICBncm91cF9ieShhZ2VfZ3JvdXApICU+JQogIHN1bW1hcml6ZShOID0gbigpLCAKICAgICAgICAgICAgbWluX2FnZSA9IG1pbihhZ2UsIG5hLnJtID0gVCksCiAgICAgICAgICAgIG1heF9hZ2UgPSBtYXgoYWdlLCBuYS5ybSA9IFQpLAogICAgICAgICAgICBtZWFuX2FnZSA9IG1lYW4oYWdlLCBuYS5ybSA9IFQpLAogICAgICAgICAgICBzZF9hZ2UgPSBzZChhZ2UsIG5hLnJtID0gVCksCiAgICAgICAgICAgIG5fZmVtYWxlID0gc3VtKGdlbmRlciA9PSAnRmVtYWxlJyksCiAgICAgICAgICAgIG5fbWFsZSA9IHN1bShnZW5kZXIgPT0gJ01hbGUnKSwKICAgICAgICAgICAgbl9vdGhlciA9IHN1bShnZW5kZXIgPT0gJ090aGVyJykpCnN1Yl9pbmZvCgpgYGAKCgojIEFnZW5jeSB0YXNrOiBBZ2VuY3kgZGVjaXNpb25zIAojIyBNb2RlbDogQWdlbmN5IGRlY2lzaW9ucyBieSBWb0MKYGBge3IgYWdlbmN5IG1vZGVsfQojIHNlbGVjdCByZWxldmFudCB2YXJpYWJsZXMgCmFnZW5jeV9tb2RlbF9kYXRhIDwtIGxlYXJuaW5nX2RhdGFfZmlsdGVyZWQgJT4lCiAgc2VsZWN0KHN1YmplY3RfaWQsIHN0YWdlXzFfY2hvaWNlLCB2b2MsIGNvbmRpdGlvbl90cmlhbCwgYmxvY2ssIHRyaWFsLCBhZ2UsIGFnZV9ncm91cCkKCiMjIFJFR1JFU1NJT04gTU9ERUwgIyMKI3ogc2NvcmUgY29udGludW91cyB2YXJpYWJsZXMKYWdlbmN5X21vZGVsX2RhdGEkc3ViamVjdF9pZCA8LSBmYWN0b3IoYWdlbmN5X21vZGVsX2RhdGEkc3ViamVjdF9pZCkKYWdlbmN5X21vZGVsX2RhdGEkdm9jX3ogPC0gc2NhbGVfdGhpcyhhZ2VuY3lfbW9kZWxfZGF0YSR2b2MpCmFnZW5jeV9tb2RlbF9kYXRhJGNvbmRpdGlvbl90cmlhbCA8LSBzY2FsZV90aGlzKGFnZW5jeV9tb2RlbF9kYXRhJGNvbmRpdGlvbl90cmlhbCkKYWdlbmN5X21vZGVsX2RhdGEkYWdlX3ogPC0gc2NhbGVfdGhpcyhhZ2VuY3lfbW9kZWxfZGF0YSRhZ2UpCgojcnVuIG1vZGVsCmFnZW5jeV9tb2RlbCA8LSBtaXhlZChzdGFnZV8xX2Nob2ljZSB+IGFnZV96ICogdm9jX3ogKiBjb25kaXRpb25fdHJpYWwgKyAodm9jX3ogKiBjb25kaXRpb25fdHJpYWwgfHwgc3ViamVjdF9pZCksCiAgICAgICAgICAgICAgICAgICAgICBkYXRhID0gYWdlbmN5X21vZGVsX2RhdGEsCiAgICAgICAgICAgICAgICAgICAgICBmYW1pbHkgPSAiYmlub21pYWwiLAogICAgICAgICAgICAgICAgICAgICAgbWV0aG9kID0gIkxSVCIsCiAgICAgICAgICAgICAgICAgICAgICBleHBhbmRfcmUgPSBULAogICAgICAgICAgICAgICAgICAgICAgY29udHJvbD1nbG1lckNvbnRyb2wob3B0aW1pemVyPSJib2J5cWEiLCBvcHRDdHJsPWxpc3QobWF4ZnVuPTFlNikpKQoKI3Nob3cgbW9kZWwgcmVzdWx0cwphZ2VuY3lfbW9kZWwKc3VtbWFyeShhZ2VuY3lfbW9kZWwpCmBgYAoKIyMgUGxvdDogU2Vuc2l0aXZpdHkgdG8gdGhlIHZhbHVlIG9mIGNob2ljZQpgYGB7ciB2b2MgcGxvdCwgZmlnLmhlaWdodCA9IDQsIGZpZy53aWR0aCA9IDcsIHVuaXQgPSAiaW4ifQojIyBQTE9UICMjCmFnZW5jeV9zdWJfbWVhbnMgPC0gYWdlbmN5X21vZGVsX2RhdGEgJT4lIAogIG11dGF0ZSh0YXNrX2hhbGYgPSBjYXNlX3doZW4odHJpYWwgPCAxNTggfiAiRmlyc3QgSGFsZiBvZiBUYXNrIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJpYWwgPiAxNTcgfiAiU2Vjb25kIEhhbGYgb2YgVGFzayIpKSAlPiUKICBncm91cF9ieSh0YXNrX2hhbGYsIHZvYywgc3ViamVjdF9pZCwgYWdlX2dyb3VwKSAlPiUKICBzdW1tYXJpemUobWVhbl9zdWJfYWdlbmN5ID0gbWVhbihzdGFnZV8xX2Nob2ljZSwgbmEucm0gPSBUKSkKCmFnZW5jeV9tZWFucyA8LSBhZ2VuY3lfc3ViX21lYW5zICU+JSAKICBncm91cF9ieSh0YXNrX2hhbGYsIHZvYywgYWdlX2dyb3VwKSAlPiUKICBzdW1tYXJpemUobWVhbl9hZ2VuY3kgPSBtZWFuKG1lYW5fc3ViX2FnZW5jeSwgbmEucm0gPSBUKSwKICAgICAgICAgICAgc2VfYWdlbmN5ID0gc2QobWVhbl9zdWJfYWdlbmN5IC8gc3FydChuKCkpKSkKCmFnZW5jeV9wbG90IDwtIGdncGxvdChhZ2VuY3lfbWVhbnMsIGFlcyh4ID0gdm9jLCB5ID0gbWVhbl9hZ2VuY3ksIGNvbG9yID0gYWdlX2dyb3VwKSkgKwogIGZhY2V0X3dyYXAofnRhc2tfaGFsZikgKwogIGdlb21fcG9pbnQoYWVzKGNvbG9yID0gYWdlX2dyb3VwKSkgKyAKICBnZW9tX2Vycm9yYmFyKGFlcyh5bWluID0gbWVhbl9hZ2VuY3kgLSBzZV9hZ2VuY3ksIHltYXggPSBtZWFuX2FnZW5jeSArIHNlX2FnZW5jeSksIHdpZHRoID0gLjEpICsgCiAgZ2VvbV9saW5lKCkgKwogIHZvY190aGVtZSgpICsgCiAgc2NhbGVfY29sb3JfbWFudWFsKHZhbHVlcz1jKCIjODQzNDdDIiwgIiNCNDA0MjQiLCAiI0VCNkQxRSIpLCBuYW1lID0gIkFnZSBHcm91cCIpICsKICB4bGFiKCJWYWx1ZSBvZiBDaG9pY2UgKFZvQykiKSArCiAgeWxhYigiUHJvcG9ydGlvbiBBZ2VuY3kgQ2hvaWNlcyIpICsKICBnZW9tX2hsaW5lKHlpbnRlcmNlcHQgPSAuNSwgbGluZXR5cGUgPSAiZGFzaGVkIikgKwogIGdlb21fdmxpbmUoeGludGVyY2VwdCA9IDAsIGxpbmV0eXBlID0gImRhc2hlZCIpCmFnZW5jeV9wbG90CmBgYAoKCiMjIFBsb3Q6IFNlbnNpdGl2aXR5IHRvIHZhbHVlIG9mIGNob2ljZSB3aXRoIGNvbnRpbnVvdXMgYWdlIApgYGB7ciB2b2MgcGxvdCBjb250aW51b3VzIGFnZSwgZmlnLmhlaWdodCA9IDMuOSwgZmlnLndpZHRoID0gMywgdW5pdCA9ICJpbiJ9CgojcnVuIG1vZGVsIHdpdGhvdXQgYWdlIHRvIGdldCByYW5kb20gZWZmZWN0cyBmb3IgZWFjaCBwYXJ0aWNpcGFudAphZ2VuY3lfZ2xtZXIgPC0gbWl4ZWQoc3RhZ2VfMV9jaG9pY2UgfiAgdm9jX3ogKiBjb25kaXRpb25fdHJpYWwgKyAodm9jX3ogKiBjb25kaXRpb25fdHJpYWwgfCBzdWJqZWN0X2lkKSwKICAgICAgICAgICAgICAgICAgICAgIGRhdGEgPSBhZ2VuY3lfbW9kZWxfZGF0YSwgCiAgICAgICAgICAgICAgICAgICAgICBmYW1pbHkgPSBiaW5vbWlhbCwgCiAgICAgICAgICAgICAgICAgICAgICBtZXRob2QgPSAiTFJUIiwKICAgICAgICAgICAgICAgICAgICAgIGNvbnRyb2w9Z2xtZXJDb250cm9sKG9wdGltaXplcj0iYm9ieXFhIixvcHRDdHJsPWxpc3QobWF4ZnVuPTFlNikpLAogICAgICAgICAgICAgICAgICAgICAgcmV0dXJuID0gIm1lck1vZCIpIAoKI2dldCBmaXhlZCBlZmZlY3Qgb2YgelZvQwpWb0NfZml4ZWRlZmYgPC0gYXMuZGF0YS5mcmFtZShjb2VmKHN1bW1hcnkoYWdlbmN5X2dsbWVyKSkpJEVzdGltYXRlWzJdClZvQ19pbnRfZml4ZWRlZmYgPC0gYXMuZGF0YS5mcmFtZShjb2VmKHN1bW1hcnkoYWdlbmN5X2dsbWVyKSkpJEVzdGltYXRlWzRdCgojZ2V0IHJhbmRvbSBlZmZlY3RzClZvQ19lZmZlY3RzIDwtIHJhbmVmKGFnZW5jeV9nbG1lcikkc3ViamVjdF9pZCAlPiUKICAgIHJvd25hbWVzX3RvX2NvbHVtbih2YXIgPSAic3ViamVjdF9pZCIpCgojY29tYmluZSB3aXRoIGFnZQpWb0Nfc3ViRWZmZWN0cyA8LSBhZ2VuY3lfbW9kZWxfZGF0YSAlPiUKICAgIHNlbGVjdChzdWJqZWN0X2lkLCBhZ2UpICU+JSAKICAgIHVuaXF1ZSgpICU+JQogICAgbGVmdF9qb2luKFZvQ19lZmZlY3RzLCBieSA9IGMoInN1YmplY3RfaWQiKSkgJT4lCiAgICBtdXRhdGUoelZvQ0Z1bGwgPSB2b2NfeiArIFZvQ19maXhlZGVmZiwgCiAgICAgICAgICAgaW50RnVsbCA9IGB2b2Nfejpjb25kaXRpb25fdHJpYWxgICsgVm9DX2ludF9maXhlZGVmZikKCiNwbG90IGFnZSBieSBWb0MgZWZmZWN0ClZvQ19wbG90X2NvbnRpbnVvdXNBZ2UgPC0gZ2dwbG90KFZvQ19zdWJFZmZlY3RzLCBhZXMoeCA9IGFnZSwgeSA9IHpWb0NGdWxsKSkgKwogICAgZ2VvbV9wb2ludChjb2xvciA9ICIjRUI2RDFFIikgKyAKICAgIGdlb21fc21vb3RoKG1ldGhvZCA9ICJsbSIsIGNvbG9yID0gIiM4NDM0N0MiLCBmaWxsID0gIiM4NDM0N0MiKSArCiAgICB2b2NfdGhlbWUoKSArIAogICAgeGxhYigiQWdlIikgKwogICAgeWxhYigiVm9DIEVmZmVjdCIpIApWb0NfcGxvdF9jb250aW51b3VzQWdlCgojcGxvdCBhZ2UgYnkgVm9DIHggdHJpYWwgZWZmZWN0ClZvQ19wbG90X2NvbnRpbnVvdXNBZ2VUcmlhbCA8LSBnZ3Bsb3QoVm9DX3N1YkVmZmVjdHMsIGFlcyh4ID0gYWdlLCB5ID0gaW50RnVsbCkpICsKICAgIGdlb21fcG9pbnQoY29sb3IgPSAiI0VCNkQxRSIpICsgCiAgICBnZW9tX3Ntb290aChtZXRob2QgPSAibG0iLCBjb2xvciA9ICIjODQzNDdDIiwgZmlsbCA9ICIjODQzNDdDIikgKwogICAgdm9jX3RoZW1lKCkgKyAKICAgIHhsYWIoIkFnZSIpICsKICAgIHlsYWIoIlZvQyB4IFRyaWFsIEVmZmVjdCIpIApWb0NfcGxvdF9jb250aW51b3VzQWdlVHJpYWwKYGBgCgoKCiMjIFN1bW1hcnkgc3RhdHM6IFNlbnNpdGl2aXR5IHRvIHZhbHVlIG9mIGNvbnRyb2wKYGBge3Igdm9jIHN1bW1hcnkgc3RhdHN9CgojIFdoYXQgcHJvcG9ydGlvbiBvZiB0cmlhbHMgZGlkIHBhcnRpY2lwYW50cyBjaG9vc2UgYWdlbmN5IHdoZW4gVm9DIHdhcyAwPwpWb0NfemVyb19tZWFuc19zdWIgPC0gbGVhcm5pbmdfZGF0YV9maWx0ZXJlZCAlPiUgCiAgICBmaWx0ZXIodm9jID09IDApICU+JQogICAgZ3JvdXBfYnkoc3ViamVjdF9pZCwgYWdlX2dyb3VwKSAlPiUKICAgIHN1bW1hcml6ZShtZWFuU3ViQWdlbmN5ID0gbWVhbihzdGFnZV8xX2Nob2ljZSwgbmEucm0gPSBUKSkKClZvQ196ZXJvX21lYW5zIDwtIFZvQ196ZXJvX21lYW5zX3N1YiAlPiUKICB1bmdyb3VwKCkgJT4lCiAgc3VtbWFyaXplKG1lYW5BZ2VuY3kgPSBtZWFuKG1lYW5TdWJBZ2VuY3ksIG5hLnJtID0gVCksCiAgICAgICAgICAgICAgc2VBZ2VuY3kgPSBzZChtZWFuU3ViQWdlbmN5IC8gc3FydChuKCkpKSkKVm9DX3plcm9fbWVhbnMKYGBgCgoKCiMgQWdlbmN5IHRhc2s6IE1hY2hpbmUgc2VsZWN0aW9uCiMjIE1vZGVsOiBPcHRpbWFsIG1hY2hpbmUgY2hvaWNlcyBhY3Jvc3MgdHJpYWxzIGJ5IGNvbmRpdGlvbiBhbmQgYWdlCmBgYHtyIG1hY2hpbmUgc2VsZWN0aW9uIGRlY2lzaW9uc30KIyBzZWxlY3QgdmFyaWFibGVzIGZvciBpbmNsdXNpb24gaW4gbWl4ZWQtZWZmZWN0cyBtb2RlbCAobm8gYWdlIGZvciBub3cpCm1hY2hpbmVfbW9kZWxfZGF0YSA8LSBsZWFybmluZ19kYXRhX2ZpbHRlcmVkICU+JQogIGZpbHRlcihzdGFnZV8xX2Nob2ljZSA9PSAxKSAlPiUKICBmaWx0ZXIoY29udGV4dCA8IDIpICU+JQogIHNlbGVjdChzdWJqZWN0X2lkLCBzdGFnZV8yX2FjYywgY29udGV4dCwgY29uZGl0aW9uX3RyaWFsLCBibG9jaywgYWdlLCBhZ2VfZ3JvdXApICU+JQogIGRyb3BfbmEoKQoKIyMgUkVHUkVTU0lPTiBNT0RFTCAjIwojeiBzY29yZSBjb250aW51b3VzIHZhcmlhYmxlcwptYWNoaW5lX21vZGVsX2RhdGEkc3ViamVjdF9pZCA8LSBmYWN0b3IobWFjaGluZV9tb2RlbF9kYXRhJHN1YmplY3RfaWQpCm1hY2hpbmVfbW9kZWxfZGF0YSRjb250ZXh0IDwtIGZhY3RvcihtYWNoaW5lX21vZGVsX2RhdGEkY29udGV4dCkKbWFjaGluZV9tb2RlbF9kYXRhJGNvbmRpdGlvbl90cmlhbCA8LSBzY2FsZV90aGlzKG1hY2hpbmVfbW9kZWxfZGF0YSRjb25kaXRpb25fdHJpYWwpCm1hY2hpbmVfbW9kZWxfZGF0YSRhZ2VfeiA8LSBzY2FsZV90aGlzKG1hY2hpbmVfbW9kZWxfZGF0YSRhZ2UpCgojcnVuIG1vZGVsCm1hY2hpbmVfbW9kZWwgPC0gbWl4ZWQoc3RhZ2VfMl9hY2MgfiBhZ2VfeiAqIGNvbnRleHQgKiBjb25kaXRpb25fdHJpYWwgKyAoY29udGV4dCAqIGNvbmRpdGlvbl90cmlhbCB8fCBzdWJqZWN0X2lkKSwKICAgICAgICAgICAgICAgICAgICAgIGRhdGEgPSBtYWNoaW5lX21vZGVsX2RhdGEsCiAgICAgICAgICAgICAgICAgICAgICBmYW1pbHkgPSAiYmlub21pYWwiLAogICAgICAgICAgICAgICAgICAgICAgbWV0aG9kID0gIkxSVCIsCiAgICAgICAgICAgICAgICAgICAgICBleHBhbmRfcmUgPSBULAogICAgICAgICAgICAgICAgICAgICAgY29udHJvbD1nbG1lckNvbnRyb2wob3B0aW1pemVyPSJib2J5cWEiLCBvcHRDdHJsPWxpc3QobWF4ZnVuPTFlNikpKQoKI3Nob3cgbW9kZWwgcmVzdWx0cwptYWNoaW5lX21vZGVsCnN1bW1hcnkobWFjaGluZV9tb2RlbCkKYGBgCgojIyBQbG90OiBQcm9wb3J0aW9uIG9wdGltYWwgbWFjaGluZSBzZWxlY3Rpb25zIGFjcm9zcyBhZ2UgZ3JvdXBzIGFuZCB0cmlhbHMKYGBge3IgcGxvdCBiYW5kaXQgY2hvaWNlcyBhY3Jvc3MgdHJpYWxzLCB3aWR0aCA9IDcsIGhlaWdodCA9IDQsIHVuaXQgPSAiaW4ifQoKIyMgUExPVCAjIwptYWNoaW5lX3NlbGVjdGlvbl9zdWJfbWVhbnMgPC0gbWFjaGluZV9tb2RlbF9kYXRhICU+JQogIGdyb3VwX2J5KGNvbnRleHQsIGJsb2NrLCBzdWJqZWN0X2lkLCBhZ2VfZ3JvdXApICU+JSAKICBzdW1tYXJpemUoc3ViX2FjYyA9IG1lYW4oc3RhZ2VfMl9hY2MsIG5hLnJtID0gVCkpCgptYWNoaW5lX3NlbGVjdGlvbl9tZWFucyA8LSBtYWNoaW5lX3NlbGVjdGlvbl9zdWJfbWVhbnMgJT4lCiAgZ3JvdXBfYnkoY29udGV4dCwgYmxvY2ssIGFnZV9ncm91cCkgJT4lIAogIHN1bW1hcml6ZShtZWFuX2FjYyA9IG1lYW4oc3ViX2FjYyksCiAgICAgICAgICAgIHNlID0gc2Qoc3ViX2FjYykvc3FydChuKCkpKQoKbWFjaGluZV9zZWxlY3Rpb25fcGxvdCA8LSBnZ3Bsb3QobWFjaGluZV9zZWxlY3Rpb25fbWVhbnMsIGFlcyh4PWJsb2NrLCB5PW1lYW5fYWNjLCBjb2xvcj1mYWN0b3IoY29udGV4dCkpKSArCiAgZmFjZXRfd3JhcCh+YWdlX2dyb3VwKSArCiAgZ2VvbV9wb2ludChzaXplID0gMykgKwogIGdlb21faml0dGVyKGRhdGEgPSBtYWNoaW5lX3NlbGVjdGlvbl9zdWJfbWVhbnMsICBhZXMoeD1ibG9jaywgeT1zdWJfYWNjLCBjb2xvcj1mYWN0b3IoY29udGV4dCkpLCBzaXplID0gLjUpICsKICBnZW9tX3Ntb290aChtZXRob2QgPSAibG0iLCBhZXMoZmlsbCA9IGZhY3Rvcihjb250ZXh0KSkpICsKICBnZW9tX2hsaW5lKHlpbnRlcmNlcHQgPSAuNSwgbGluZXR5cGU9ImRhc2hlZCIpICsKICB5bGFiKCJQcm9wb3J0aW9uIE9wdGltYWwgTWFjaGluZSBTZWxlY3Rpb25zIikgKwogIHhsYWIoIkJsb2NrIikgKwogIHNjYWxlX3hfY29udGludW91cyhicmVha3MgPSBjKDQsIDgsIDEyKSkgKwogIHNjYWxlX2ZpbGxfbWFudWFsKG5hbWU9IkNvbnRleHQiLAogICAgICAgICAgICAgICAgICAgIGxhYmVscz1jKCI5MC8xMCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjcwLzMwIiksCiAgICAgICAgICAgICAgICAgICAgdmFsdWVzPWMoY29sb3IxLCBjb2xvcjMpLCAKICAgICAgICAgICAgICAgICAgICBndWlkZSA9IGd1aWRlX2xlZ2VuZChyZXZlcnNlPVRSVUUpKSArCiAgc2NhbGVfY29sb3JfbWFudWFsKG5hbWU9IkNvbnRleHQiLAogICAgICAgICAgICAgICAgICAgICBsYWJlbHM9YygiOTAvMTAiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiNzAvMzAiKSwKICAgICAgICAgICAgICAgICAgICAgdmFsdWVzPWMoY29sb3IxLCBjb2xvcjMpLAogICAgICAgICAgICAgICAgICAgICBndWlkZSA9IGd1aWRlX2xlZ2VuZChyZXZlcnNlPVRSVUUpKSArCiAgdm9jX3RoZW1lKCkgKwogIHRoZW1lKHN0cmlwLnRleHQgPSBlbGVtZW50X3RleHQoc2l6ZT0xMikpCm1hY2hpbmVfc2VsZWN0aW9uX3Bsb3QKYGBgCgoKCiMgRXhwbGljaXQgcmV3YXJkIGtub3dsZWRnZSB0YXNrIAojIyBFeHBsaWNpdCByZXdhcmQga25vd2xlZGdlIHRhc2s6IHN1bW1hcnkgc3RhdHMKYGBge3IgZXhwbGljaXQga25vd2xlZGdlIHRhc2t9CgojIFJlYWQgaW4gZGF0YQpleHBsaWNpdEtub3cgPC0gcmVhZF9jc3YoJ2RhdGEvcHJvY2Vzc2VkL2V4cGxpY2l0X2RhdGEuY3N2JykgCiNleHBsaWNpdEtub3ckc3ViamVjdF9pZCA8LSBmYWN0b3IoZXhwbGljaXRLbm93JHN1YmplY3RfaWQpCgojY29tYmluZSB3aXRoIGFnZQpleHBsaWNpdEtub3cgPC0gZnVsbF9qb2luKGV4cGxpY2l0S25vdywgcGFydGljaXBhbnRfYWdlcywgYnkgPSBjKCJzdWJqZWN0X2lkIikpCgpleHBsaWNpdEtub3cgJT4lIAogIGdyb3VwX2J5KHN1YmplY3RfaWQsIGFnZSkgJT4lIAogIHN1bW1hcml6ZShtID0gbWVhbihlcnJvcikpICU+JSAKICB1bmdyb3VwKCkgJT4lIAogIHN1bW1hcml6ZShtZWFuRXJyID0gbWVhbihtLCBuYS5ybT1UKSwgc2QgPSBzZChtLCBuYS5ybSA9IFQpKQpgYGAKCiMjIE1vZGVsOiBFeHBsaWNpdCByZXdhcmQga25vd2xlZGdlIGJ5IGFnZSBhbmQgdHJ1ZSBwcm9iYWJpbGl0aWVzCmBgYHtyIGV4cGxpY2l0IGtub3dsZWRnZSBtb2RlbH0KCiNyZS1zY2FsZSBhZ2UgYW5kIHpUcnVlUHJvYgpleHBsaWNpdEtub3cuZmlsdGVyZWQgPC0gZXhwbGljaXRLbm93ICU+JQogICAgc2VsZWN0KHN1YmplY3RfaWQsIGFnZSwgdHJ1ZV9wcm9iLCBlcnJvcikgJT4lCiAgICBkcm9wX25hKCkKCmV4cGxpY2l0S25vdy5maWx0ZXJlZCR6QWdlIDwtIHNjYWxlKGV4cGxpY2l0S25vdy5maWx0ZXJlZCRhZ2UpCmV4cGxpY2l0S25vdy5maWx0ZXJlZCR6VHJ1ZVByb2IgPC0gc2NhbGUoZXhwbGljaXRLbm93LmZpbHRlcmVkJHRydWVfcHJvYikKCiMgcnVuIG1vZGVsCmV4cGxpY2l0S25vd19lcnJvcmJ5VHJ1ZVByb2JBZ2UubWl4ZWQgPC0gbWl4ZWQoZXJyb3IgfiB6VHJ1ZVByb2IqekFnZSArICgxfHN1YmplY3RfaWQpLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhID0gZXhwbGljaXRLbm93LmZpbHRlcmVkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1ldGhvZCA9ICJTIikgCmV4cGxpY2l0S25vd19lcnJvcmJ5VHJ1ZVByb2JBZ2UubWl4ZWQKc3VtbWFyeShleHBsaWNpdEtub3dfZXJyb3JieVRydWVQcm9iQWdlLm1peGVkKQpgYGAKCiMjIFBsb3Q6IEV4cGxpY2l0IHJld2FyZCBrbm93bGVkZ2UKYGBge3IgcGxvdCBleHBsaWNpdCBrbm93bGVkZ2V9CgpleHBsaWNpdEtub3cgPC0gZXhwbGljaXRLbm93ICU+JQogIG11dGF0ZShhZ2VfZ3JvdXAgPSBjYXNlX3doZW4oYWdlIDwgMTMgfiAnQ2hpbGRyZW4nLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWdlIDwgMTggJiBhZ2UgPiAxMi45OSB+ICdBZG9sZXNjZW50cycsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZ2UgPiAxOCB+ICdBZHVsdHMnKSkKCmV4cGxpY2l0S25vdyRhZ2VfZ3JvdXAgPC0gZmFjdG9yKGV4cGxpY2l0S25vdyRhZ2VfZ3JvdXAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXZlbHMgPSBjKCJDaGlsZHJlbiIsICJBZG9sZXNjZW50cyIsICJBZHVsdHMiKSkKCiMgcGxvdCByZXNwb25zZSBieSBiYW5kaXQKZXhwbGljaXRLbm93ICU+JSBkcm9wX25hKCkgJT4lCiAgICBnZ3Bsb3QoLiwgYWVzKHg9ZmFjdG9yKHRydWVfcHJvYiksIHk9cmVzcG9uc2UsIGZpbGw9YWdlX2dyb3VwKSkgKwogICAgZ2VvbV9ib3hwbG90KCkgKwogICAgc2NhbGVfZmlsbF9tYW51YWwodmFsdWVzID0gYyhjb2xvcjEsIGNvbG9yMiwgY29sb3IzKSwgbmFtZSA9ICJBZ2UgR3JvdXAiKSArCiAgICB5bGFiKCJSZXBvcnRlZCBSZXdhcmQgUHJvYmFiaWxpdHkiKSArCiAgICB4bGFiKCJUcnVlIFJld2FyZCBQcm9iYWJpbGl0eSIpICsKICAgIHNjYWxlX3hfZGlzY3JldGUobGFiZWxzID0gYygiMTAlIiwgIjMwJSIsICI1MCUiLCAiNzAlIiwgIjkwJSIpKSArCiAgICBzY2FsZV95X2NvbnRpbnVvdXMoYnJlYWtzID0gYygxLCAyLCAzLCA0LCA1LCA2LCA3LCA4LCA5LCAxMCksIAogICAgICAgICAgICAgICAgICAgICBsYWJlbHMgPSBjKCIxMCUiLCAiMjAlIiwgIjMwJSIsICI0MCUiLCAiNTAlIiwgIjYwJSIsICI3MCUiLCAiODAlIiwgIjkwJSIsICIxMDAlIikpICsKICAgIHZvY190aGVtZSgpCmBgYAo=